home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 2 / ACE CD 2.iso / FILES / GAMES / 1-L / FUNS4572.DMS / in.adf / Menu.AMOS / Menu.amosSourceCode
Encoding:
AMOS Source Code  |  1990-10-25  |  9.0 KB  |  221 lines

  1. Rem                Funschool 4 - 5 to 7s Intro and Main Menu 
  2. Rem                       By Gavin M Thornton    V1.1  
  3. Set Buffer 5
  4. 'Break Off 
  5. On Error Goto 60000
  6. Fade 3 : Wait 30
  7. MENU=$4D454E55
  8. IRO=Leek(1020)
  9. Loke 1020,MENU
  10. VER$="1.0" : RV=999 : Close Workbench : Close Editor : Bob Update On 
  11. 1 Rem - Jump back to here after Lets Play screen - 
  12. Auto View Off : Z=1 : Hide On : Curs Off 
  13. On Error Goto 60000 : For A=0 To 7 : Screen Close A : Next A : For A=2 To 10 : Erase A : Next A : On Error Goto 0
  14. Reserve As Chip Work 14,11600 : Bload "sound/mod.intro2",14
  15. Reserve As Chip Work 15,4200 : Bload "sound/mod.intro2.nt",15
  16. Sload Start(14),Start(15)
  17.  Extension_1_022E 0,0,0,1
  18. Dim X(6),Y(6),F$(6),AB(3),YB(3)
  19. YB(0)=10 : YB(1)=28 : YB(2)=71 : YB(3)=90 : Rem -- when bubbles are produced 
  20. Load "intro/main.abk",6 : Unpack 6 To 0 : Erase 6
  21. Screen Open 1,320,175,16,Lowres
  22. Screen Copy 0,0,0,320,175 To 1,0,0 : Screen Hide 1
  23. Restore 580 : Screen 0 : Reserve Zone 6 : For L=1 To 6 : Read X(L),Y(L) : Set Zone L,X(L),Y(L) To X(L)+98,Y(L)+63 : Next L
  24. For L=1 To 6 : Read F$(L) : Next L
  25. Erase 1 : Load "intro/menuspr.abk",1
  26. Autoback 1 : Screen 0 : Screen To Front 0
  27. X: Screen Copy 1 To Physic
  28. B=15 : For A=1 To 15 : Channel A To Bob B : Dec B : Next A
  29. 126 Curs Off : Flash Off : Gosub 60010
  30. Auto View On : View 
  31. If IRO<>MENU or 1=1 Then Gosub 1000 : Goto SELECTOR
  32. Rem >>- setup screen for NO animation
  33. Screen Hide 1 : Screen To Front 0
  34. Screen 0 : Bob Off : Double Buffer 
  35. Gosub 60010
  36. Autoback 0
  37. Rem > waves sprites
  38. For X=0 To 4 : Bob 5-X,X*64,169,2 : Next X
  39. Anim 11,"(2,6)(3,6)(4,6)(5,6)l" : Anim 12,"(3,6)(4,6)(5,6)(2,6)l"
  40. Anim 13,"(4,6)(5,6)(2,6)(3,6)l" : Anim 14,"(5,6)(2,6)(3,6)(4,6)l"
  41. Anim 15,"(2,6)(3,6)(4,6)(5,6)l"
  42. Autoback 1
  43. Paste Bob 33,189,22
  44. Paste Bob 2,184,21
  45. Bob 10,18,153,53
  46. 'Bob 11,X Bob(6),Y Bob(6),52 
  47. 'Anim 5,"(53,40)(52,140)(53,40)(52,100)l"
  48. Anim On 
  49. 'Fade 3,$79F,$EEE,$AAA,$565,$C0,$8F7,$4B,$EF,$F46,$F99,$930,$F92,$FF0,$CCC,$0,$D60 
  50. Fade 3,$B60,$FFF,$DDD,$60,$2B2,$4D4,$6BF,$46D,$D60,$F92,$B44,$F44,$666,$FD4,0,$F99
  51. SELECTOR:
  52. 130 Limit Mouse : Y Mouse=150 : X Mouse=285 : Hide On 
  53. 190 MM=1 : X=X Mouse : Y=Y Mouse : Z=1 : I$="" : Clear Key 
  54. 200 Rem --- Main selection routine  ---
  55. I$=Inkey$ : SC=Scancode
  56. If Lower$(I$)="v" Then Locate 18,0 : Paper 0 : Pen 15 : Print "v",VER$
  57. '
  58. If(X Mouse<>X or Y Mouse<>Y) and MM=1 Then MM=0 : OZ=Z : Gosub 400
  59. If MM=0 Then Z=Mouse Zone : MK=Mouse Key
  60. If MM=0 Then Bob 20,X Screen(X Mouse),Y Screen(Y Mouse),1 : Else Bob Off 20
  61. '
  62. If MM=1 Then Gosub 410
  63. If I$=" " and MM=0 Then Z=0 : MM=1 : Bob Off 20 : X=X Mouse : Y=Y Mouse
  64. If I$=" " and MM=1 Then OZ=Z : Inc Z : Gosub 400
  65. Rem - Screen Swap  
  66. Wait Vbl 
  67. If MM=0 and Z>0 and MK>0 Then 300
  68. If MM=1 and Z>0 and SC=68 Then 300
  69. Goto 200
  70. '
  71. 300 Rem --- Selected --- 
  72. POS=Z-1
  73. Sam Swapped : Erase 14 : Erase 15
  74. Goto 500
  75. 400 Rem ---- Update box ---- 
  76. X=X Mouse : Y=Y Mouse
  77. Ink 14 : If OZ<>3 and OZ>0 Then Box X(OZ),Y(OZ) To X(OZ)+82,Y(OZ)+50
  78. If OZ=3 Then Polyline 228,33 To 224,33 To 224,83 To 306,83 To 306,53
  79. Wait Vbl 
  80. If MM=0 Then Return 
  81. If Z=7 Then Z=1
  82. 410 Rem - Flash -
  83. CO=CO+1 : If CO=16 Then CO=1
  84. Ink CO
  85. If Z<>3 Then Box X(Z),Y(Z) To X(Z)+82,Y(Z)+50 : Else Polyline 228,33 To 224,33 To 224,83 To 306,83 To 306,53
  86. Return 
  87. 500 Rem --- Ok, load the selected program ---
  88. POS=Z
  89. Sam Swapped
  90. Erase 14
  91. Erase 15
  92. Fade 1 : Wait 15 : Hide On : Autoback 0 : Update Off : Auto View Off : Wait Vbl 
  93. F$="intro/"+Chr$(48+POS)+".abk"
  94. Screen Open 6,320,200,16,Lowres
  95. Load F$,5 : Unpack 5 To 6
  96. Screen 6 : Auto View On : View : Wait Vbl 
  97. Fade 2 To 6
  98. On Error Goto 540
  99. 520 If Exist(F$(Z)) Then Run F$(Z)
  100. For DRV=0 To 3
  101.  If Exist("df"+Str$(DRV)+":"+F$(Z)) Then Dir$="df"+Str$(DRV)+":" : Run F$(Z)
  102. Next DRV
  103. 540 Rem - Wow, an error has occurred - 
  104. Inc ER : If ER>3 Then Goto 1
  105. Wait 10
  106. Paste Bob 72,174,54
  107. Clear Key 
  108. Wait Key 
  109. Ink 0 : Bar 64,174 To 256,196
  110. Goto 520
  111. 570 Rem --- Zone data -
  112. 580 Data 16,33
  113. 582 Data 120,33
  114. 584 Data 224,33
  115. 586 Data 16,103
  116. 588 Data 120,103
  117. 592 Data 224,103
  118. 600 Rem --- Filename data -
  119. 610 Data "library.AMOS"
  120. 620 Data "basketball.AMOS"
  121. 630 Data "shopkeeper.AMOS"
  122. 640 Data "log cabin.AMOS"
  123. 650 Data "opposites.AMOS"
  124. 660 Data "typing.AMOS"
  125. 1000 Rem --- Intro ---
  126. 1005 Ink 7 : Bar 0,28 To 319,178
  127. 1006 Paste Bob 33,189,22
  128. 1008 Limit Bob 0,0 To 320,200
  129. Bob Off : Double Buffer : Autoback 2 : Bob Update Off 
  130. Rem - Waves -
  131. 1010 For X=0 To 4 : Bob 5-X,X*64,18,2 : Move Y 11+X,"(4,1,1)(3,2,2)(4,1,1)(2,0,1)(4,-1,1)(3,-2,2)(4,-1,1)(2,0,1)l" : Move On 11+X : Wait 4 : Next X
  132. Anim 11,"(2,6)(3,6)(4,6)(5,6)l"
  133. Anim 12,"(3,6)(4,6)(5,6)(2,6)l"
  134. Anim 13,"(4,6)(5,6)(2,6)(3,6)l"
  135. Anim 14,"(5,6)(2,6)(3,6)(4,6)l"
  136. Anim 15,"(2,6)(3,6)(4,6)(5,6)l"
  137. Rem - Snail and Plug - 
  138. 1022 Bob 14,96,164,10 : Bob 13,32,180,21
  139. 1025 Rem - Fish - 
  140. 1030 Bob 12,360,90,27 : Move X 4,"(1,-1,120)(10,0,1)(1,2,60)" : Anim 4,"(27,120)(28,10)(26,1)"
  141. 1032 Move Y 4,"(3,-2,1)(3,-1,1)(3,0,1)(3,1,1)(3,2,1)(3,1,1)(3,0,1)(3,-1,1)L"
  142. 1035 Bob 11,-32,50,25 : Move Y 5,"(4,-2,1)(4,-1,1)(4,0,1)(4,1,1)(4,2,1)(4,1,1)(4,0,1)(4,-1,1)L" : Move X 5,"(1,1,100)(10,0,1)(1,-2,50)" : Anim 5,"(25,100)(26,10)(28,1)"
  143. 1038 Rem - Frog and Goggles - 
  144. 1040 Bob 6,160,-300,30
  145. Move Y 10,"(1,4,79)(1,2,62)(1,-1,2)(2,-1,2)(2,0,1)(2,1,2)(1,1,2)(1,-1,2)(2,0,1)(1,1,2)(1,-1,1)(1,0,1)(1,1,1)"
  146. Anim 10,"(30,79)(31,60)(32,1)"
  147. 1043 Bob 15,188,-300,9 : Move Y 1,"(1,4,79)(2,2,82)"
  148. Move X 1,"(79,0,1)(2,2,12)(2,0,1)(2,-1,10)(2,0,1)(2,2,12)(2,0,1)(2,-1,10)(2,0,1)(2,2,12)(2,0,1)(2,-1,10)(2,0,1)(2,2,10)"
  149. Anim 1,"(9,79)(23,26)(24,22)(23,26)(24,22)(23,26)(24,22)(23,20)"
  150. 1047 Move On : Anim On : Bob Update On : RemFade 3,$79F,$EEE,$AAA,$565,$C0,$8F7,$4B,$EF,$F46,$F99,$930,$F92,$FF0,$CCC,$0,$D60 
  151. Fade 3,$B60,$FFF,$DDD,$60,$2B2,$4D4,$6BF,$46D,$D60,$F92,$B44,$F44,$666,$FD4,0,$F99
  152. 1050 Anim 2,"(10,150)(11,8)(12,8)(13,20)(14,20)(13,20)(12,8)(11,8)(10,1)" : Anim On 2
  153. 1060 While Y Bob(6)<-20 : Wend 
  154. Rem 1070 SAMSPEED 10 : Sam Play 1
  155. 1124 While Y Bob(15)<120
  156. 1125 Gosub 1600
  157. 1128 Wend 
  158. 1130 Bob 6,164,142,33
  159. 1131 Rem - Question mark -
  160. 1132 Move Off 5 : Bob 11,188,116,29 : Anim 5,"(29,10)(9,10)(29,10)(9,10)(29,10)(9,1)" : Anim On 5
  161. 1133 Wait 30
  162. Rem 1134 SAMSPEED 10 : Sam Play 3
  163. 1135 Wait 20 : Bob Off 11
  164. 1136 Rem - Crawl -
  165. 1137 Bob 6,156,152,34 : Anim 10,"(34,4)(35,3)(36,4)(35,3)(34,4)(35,3)(36,4)(37,3)" : Move X 10,"(1,-2,26)(20,0,1)" : Wait Vbl : Anim On 10 : Move On 10
  166. 1138 Wait 46 : While Movon(10)<>0 : Wend 
  167. 1139 Rem - Pick up snail -
  168. 1140 Bob 14,112,178,38 : Bob 6,112,177,39
  169. Rem 1141 SAMSPEED 10 : Sam Play 4 : Wait Vbl 
  170. 1142 Anim 10,"(39,30)(40,20)(41,50)(42,30)(43,6)(44,6)(43,6)(44,6)(43,6)(44,1)"
  171. Anim On 10 : Wait 160
  172. Rem SAMSPEED 10 : Sam Play 5 
  173. Wait 20 : Bob 6,97,141,45 : Bob 14,126,130,15
  174. 1144 Move Y 2,"(1,-1,2)(2,-1,2)(2,0,1)(4,1,4)(2,1,4)(1,2,25)(1,-2,2)(1,-1,2)(2,0,1)(1,1,2)(1,2,2)"
  175. Move X 2,"(4,1,14)" : Anim 2,"(15,3)(16,3)(17,3)(18,3)(15,3)(16,3)(17,3)(18,4)(15,4)(16,5)(17,6)(18,7)(15,1)" : Wait Vbl 
  176. Anim On 2 : Move On 2
  177. 1145 Wait 10 : Bob 6,98,141,33
  178. 1146 Rem - Crawl -
  179. 1147 Wait 10 : Bob 6,96,152,34 : Anim 10,"(34,4)(35,3)(36,4)(35,3)(34,4)(35,3)(36,4)(37,3)"
  180. Move X 10,"(1,-2,26)(20,0,1)" : Wait Vbl : Anim On 10 : Move On 10
  181. 1148 While Movon(10)<>0 : Wend 
  182. 1149 While Movon(2)<>0 : Wend 
  183. 1150 Anim Off 2 : Bob 14,130,178,19 : Anim 2,"(19,54)(20,1)"
  184. Move X 2,"(1,1,52)(2,1,2)(1,0,2)(1,-1,4)(1,-2,4)(1,-3,42)(1,-1,8)" : Move Y 2,"(110,0,1)(1,1,2)(1,2,2)(1,4,8)"
  185. Move On 2 : Anim On 2
  186. Bob Off 12 : Bob Off 11
  187. 1155 Rem - Pull Plug -
  188. 1158 Limit Bob 0,0 To 320,197
  189. 1160 Bob 6,32,143,46
  190. 1162 Bob Off 13 : Wait Vbl : Move Y 10,"(10,0,1)(8,-1,1)(8,1,1)(8,-1,1)(8,1,1)(8,-1,1)"
  191. Anim 10,"(46,42)(47,1)" : Anim On 10 : Move On 10
  192. 1164 Move X 1,"(1,-1,8)(1,-2,8)(1,-4,47)(1,-1,8)" : Move Y 1,"(58,0,1)(1,1,20)"
  193. 1165 Wait 20
  194. 1300 Rem --- Empty tank --- 
  195. 1305 For X=0 To 4 : Move Off X+11 : Wait Vbl : Bob 5-X,X*64,23,4 : Move Y X+11,"(1,1,146)" : Next X
  196. 1308 Autoback 2
  197. 1310 Anim 10,"(48,30)(49,4)(50,4)(49,4)(50,4)(49,4)(50,4)(49,4)(50,4)(49,4)(50,4)(49,4)(50,4)(49,4)(50,4)(49,2)(53,1)"
  198. Move Y 10,"(1,-4,2)(1,-2,2)(1,-1,2)(2,0,1)(1,1,1)(1,2,2)(1,4,2)(10,-1,1)(4,1,1)(6,-1,1)(4,1,1)(8,-1,1)(4,1,1)(6,-1,1)(30,0,1)(1,14,1)"
  199. Move X 10,"(1,4,16)(1,2,6)(1,1,4)(2,0,1)(1,-1,12)(1,-2,41)"
  200. 1311 Bob 13,36,154,9 : Move X 3,"(1,-1,34)" : Move Y 3,"(1,-4,6)(1,-2,4)(1,-1,2)(2,0,1)(1,1,2)(1,2,4)(1,4,12)"
  201. Anim 3,"(21,1)" : Wait Vbl : Anim On 10 : Anim On 3
  202. 1312 Move On 
  203. Y=0 : Bob Update Off : Autoback 0
  204. While Y<168
  205.   Y=Y Bob(5) : Bob Clear : Screen Copy 1,0,Y-20,320,Y+10 To Logic,0,Y-20 : Bob Draw : Screen Swap : Wait Vbl 
  206. Wend 
  207. 1320 Autoback 2 : Bob Update On : Update 
  208. 1345 Return 
  209. Rem --- bob bubbles ---  
  210. 1600 For BUB=0 To 3
  211. 1612 If Movon(BUB+6)=0 Then Bob Off 10-BUB
  212. 1618 If Y Bob(6)>34+YB(BUB) and AB(BUB)=0 Then Bob 10-BUB,X Bob(6)+Rnd(8)+32,Y Bob(6)+8,9
  213. On Error Goto 60000
  214. If Y Bob(6)>34+YB(BUB) and AB(BUB)=0 Then Move Y BUB+6,"(2,-1,"+Str$(Y Bob(10-BUB)-24)+")"
  215. If Y Bob(6)>34+YB(BUB) and AB(BUB)=0 Then Anim BUB+6,"("+Str$(6+Rnd(2))+","+Str$((Y Bob(BUB+6)-24)*2)+")(9,1)" : Move On BUB+6 : Anim On BUB+6 : AB(BUB)=1
  216. If AB(2)=1 and AX=0 Then AB(0)=0 : YB(0)=YB(2)+12 : AX=1
  217. On Error Goto 0
  218. Rem SAMSPEED 6+Rnd(9) : Sam Play 2 
  219. 1620 Next BUB : Return 
  220. 60000 Resume Next 
  221. 60010 Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 : Return